/*
* 数据类型
*/
#![allow(unused_variables)]
fn main() {
    {
        let guess: u32 = "42".parse().expect("Not a number!");
    }
    {
        let x = 2.0;
        let y: f32 = 3.0;
    }
    // * 复合类型：元组和数组
    {
        // * 元组：拥有固定长度，一旦声明就不能随便改变大小
        let tup: (i32, f64, u8) = (500, 6.4, 1);
        let (x, y, z) = tup;
        let five_hundred = tup.0;
        let six_point_four = tup.1;
        let one = tup.2;
    }
    {
        // * 数组：每个元组都必须是相同类型，一旦声明就不能随便改变大小
        let a = [1, 2, 3, 4, 5];
        let a = [3; 5]; // * 等价于 let a = [3, 3, 3, 3, 3];
        let a: [i32; 5] = [1, 2, 3, 4, 5];
        // 注意不像python那样有切片的概念，这里的a[1..3]是一个数组
        println!("{}", a[a.len() - 1])
    }
}
